package persistent.dao;

import java.util.List;

import model.VClassCheckPersonNumber;
import model.VClassEPQCheckReportStatis;
import model.VClassMHTCheckReportStatis;
import model.VGradeCheckPersonNumber;
import model.VGradeEPQCheckReportStatis;
import model.VGradeMHTCheckReportStatis;
import model.VSchoolCheckPersonNumber;
import model.VSchoolEPQCheckReportStatis;
import model.VSchoolMHTCheckReportStatis;

/**
 * 测试报告统计业务类接口
 * @author Administrator
 *
 */
public interface ICheckStatisDAO {
	
	/**
	 * 获得基于班级，测评时间的MHT各维度统计数据
	 * @param classid
	 * @param checktime
	 * @return
	 */
	public List<VClassMHTCheckReportStatis> getVClassMHTCheckReportStatisByClassId(String classid,String checktime);
	
	/**
	 * 获得基于班级，测评时间，测试报告类型的班级参加测试的人数
	 * @param checktypeid
	 * @param classid
	 * @param checktime
	 * @return
	 */
	public VClassCheckPersonNumber getClassCheckPersonNumberByCondition(int checktypeid,String classid,String checktime);

	/**
	 * 获得组合条件返回的MHT各维度统计数据
	 * @param whereCondition
	 * @return
	 */
	public List<VClassMHTCheckReportStatis> getVClassMHTCheckReportStatisByCondition(String whereCondition);
	
	/**
	 * 获得基于班级，测评时间的EPQ各维度统计数据
	 * @param classid
	 * @param checktime
	 * @return
	 */
	public List<VClassEPQCheckReportStatis> getVClassEPQCheckReportStatisByClassId(String classid,String checktime);
	
	/**
	 * 获得组合条件返回的EPQ各维度统计数据
	 * @param whereCondition
	 * @return
	 */
	public List<VClassEPQCheckReportStatis> getVClassEPQCheckReportStatisByCondition(String whereCondition);

	/**
	 * 获得EPQ中指定维度的程度数量(通过班级)
	 * @param itemname
	 * @return
	 */
	public int getStatusNumberByEPQItemName(String itemname,String classID,String checktime);
	
	/**
	 * 获得MHT中指定维度的程度数量(通过班级)
	 * @param itemname
	 * @return
	 */
	public int getStatusNumberByMHTItemName(String itemname,String classID,String checktime);

	//TODO 2018-11-09 14:34 基于年级
	
	/**
	 * 获得基于年级，测评时间的MHT各维度统计数据
	 * @param gradeName 年级名称
	 * @param checktime 测评时间
	 * @return
	 */
	public List<VGradeMHTCheckReportStatis> getVGradeMHTCheckReportStatisByGradeName(String gradeName, String checktime);
	
	/**
	 * 获得基于年级，测评时间，测试报告类型的班级参加测试的人数
	 * @param checktypeid 报告类型id
	 * @param gradeName 年级名称
	 * @param checktime 测评时间
	 * @return
	 */
	public VGradeCheckPersonNumber getGradeCheckPersonNumberByCondition(int checktypeid, String gradeName, String checktime);

	/**
	 * 获得组合条件返回的MHT各维度统计数据（年级）
	 * @param whereCondition 查询条件
	 * @return
	 */
	public List<VGradeMHTCheckReportStatis> getVGradeMHTCheckReportStatisByCondition(String whereCondition);
	
	/**
	 * 获得基于年级，测评时间的EPQ各维度统计数据
	 * @param gradeName 年级名称
	 * @param checktime 测评时间
	 * @return
	 */
	public List<VGradeEPQCheckReportStatis> getVGradeEPQCheckReportStatisByGradeName(String gradeName, String checktime);
	
	/**
	 * 获得组合条件返回的EPQ各维度统计数据(年级)
	 * @param whereCondition 查询条件
	 * @return
	 */
	public List<VGradeEPQCheckReportStatis> getVGradeEPQCheckReportStatisByCondition(String whereCondition);

	/**
	 * 获得EPQ中指定维度的程度数量(按年级)
	 * @param itemname 单项名称
	 * @param gradeName 年级名称
	 * @param checktime 测评时间
	 * @return
	 */
	public int getStatusNumberByEPQItemNameByGrade(String itemname, String gradeName, String checktime);
	
	/**
	 * 获得MHT中指定维度的程度数量(按年级)
	 * @param itemname 单项名称
	 * @param gradeName 年级名称
	 * @param checktime 测评时间
	 * @return
	 */
	public int getStatusNumberByMHTItemNameByGrade(String itemname, String gradeName, String checktime);
	
	//TODO 2018-11-09 15:41 基于学校
	
	/**
	 * 获得基于学校，测评时间的MHT各维度统计数据
	 * @param schoolid 学校名称
	 * @param checktime 测评时间
	 * @return
	 */
	public List<VSchoolMHTCheckReportStatis> getVSchoolMHTCheckReportStatisByGradeName(String schoolid, String checktime);
	
	/**
	 * 获得基于学校，测评时间，测试报告类型的班级参加测试的人数
	 * @param checktypeid 报告类型id
	 * @param schoolid 学校名称
	 * @param checktime 测评时间
	 * @return
	 */
	public VSchoolCheckPersonNumber getSchoolCheckPersonNumberByCondition(int checktypeid, String schoolid, String checktime);

	/**
	 * 获得组合条件返回的MHT各维度统计数据（学校）
	 * @param whereCondition 查询条件
	 * @return
	 */
	public List<VSchoolMHTCheckReportStatis> getVSchoolMHTCheckReportStatisByCondition(String whereCondition);
	
	/**
	 * 获得基于学校，测评时间的EPQ各维度统计数据
	 * @param schoolid 学校名称
	 * @param checktime 测评时间
	 * @return
	 */
	public List<VSchoolEPQCheckReportStatis> getVSchoolEPQCheckReportStatisByGradeName(String schoolid, String checktime);
	
	/**
	 * 获得组合条件返回的EPQ各维度统计数据(学校)
	 * @param whereCondition 查询条件
	 * @return
	 */
	public List<VSchoolEPQCheckReportStatis> getVSchoolEPQCheckReportStatisByCondition(String whereCondition);

	/**
	 * 获得EPQ中指定维度的程度数量(按学校)
	 * @param itemname 单项名称
	 * @param schoolid 学校名称
	 * @param checktime 测评时间
	 * @return
	 */
	public int getStatusNumberByEPQItemNameBySchool(String itemname, String schoolid, String checktime);
	
	/**
	 * 获得MHT中指定维度的程度数量(按学校)
	 * @param itemname 单项名称
	 * @param schoolid 学校名称
	 * @param checktime 测评时间
	 * @return
	 */
	public int getStatusNumberByMHTItemNameBySchool(String itemname, String schoolid, String checktime);

	
}
